let common = {
  name: "common",
  show() {
    console.log(this === admin, this === user);
    return "common.init " + this.name
  }
};
let user = {
  __proto__: common,
  name: "user",
  show() {
      return user.__proto__.show.call(this);
    // if(this != user) {
    //   return user.__proto__.show.call(this);
    // } else {
    //   return this.__proto__.show.call(this);
    // }
    
  }
};
let admin = {
  __proto__: user,
  name: "admin",
  get() {
    return this.__proto__.show.call(this);
  }
};
console.log(admin.get());

console.log('-----------------------\n')
console.log(user.show());
